嗨嗨!我是Winnie溫尼~
前面的章節,我們認識到了DOM元素中修改文字內容、增加、修改和移除標籤中的屬性以及各式取值方法,今天要介紹的是增加網頁更多互動效果的Event事件,一起來看看吧~!
用於偵測使用者是否有對此元素觸發特定的行為。
變數名稱.addEventListener("觸發行為",function(event){
觸發後要進行的動作;
});
觸發行為 | 內容 |
---|---|
blur | 物件失去焦點時 |
change | 物件內容改變時 |
click | 滑鼠點擊物件時 |
dblclick | 滑鼠連點二下物件時 |
error | 當圖片或文件下載產生錯誤時 |
focus | 當物件被點擊或取得焦點時 |
keydown | 按下鍵盤按鍵時 |
keypress | 按下並放開鍵盤按鍵後 |
keyup | 按下並放開鍵盤按鍵時 |
load | 網頁或圖片完成下載時 |
mousedown | 按下滑鼠按鍵時 |
mousemove | 介於over跟out間的滑鼠移動行為 |
mouseout | 滑鼠離開某物件四周時 |
mouseover | 滑鼠進入一個元素 (包含進入該元素中的子元素) 四周時 |
mouseup | 放開滑鼠按鍵時 |
resize | 當視窗或框架大小被改變時 |
scroll | 當捲軸被拉動時 |
select | 當文字被選取時 |
submit | 當按下送出按紐時 |
beforeunload | 當使用者關閉 (或離開) 網頁之前 |
unload | 當使用者關閉 (或離開) 網頁之後 |
例: |
<-- HTML -->
<a href="#" class="btn">Button</a>
//JavaScript
const btn = document.querySelector(".btn");
btn.addEventListener("click", function (event) {
console.log("點到按鈕"); //在console印出"點到按鈕"的資訊
btn.textContent = "Click!"; //將原本`<a></a>`標籤內的文字Button更換成Click!
});
常使用於判斷當前的元素HTML標籤。
注意:回傳的值會是大寫英文字變數名稱.nodeName;
例:
<-- HTML -->
<a href="#" class="btn">Button</a>
//JavaScript
const btn = document.querySelector(".btn");
btn.addEventListener("click",function(event){
console.log(btn.nodeName)
})
//A
常與nodeName一起使用,寫成e.target.nodeName判斷當前的元素。event.target;
例:
<-- HTML -->
<a href="#" class="btn">Button</a>
//JavaScript
const btn = document.querySelector(".btn");
btn.addEventListener("click", function (event) {
console.log(event.target);
});
//<a href="#" class="btn">Button</a>
preventDefault();
例:
<!-- HTML -->
<a href="https://ithelp.ithome.com.tw">iT邦幫忙</a>
//JavaScript
const link = document.querySelector("a"); //選取a標籤
link.addEventListener("click", function (event) {
event.preventDefault(); //正常來說點擊a連結會跳轉到iT邦幫忙的網站,使用取消預設觸發行為即可取消連結跳轉
});
在這個章節所看到得函式跟先前的函式長得有些不一樣,這邊的函式稱為「回調函式 Callback function」,回調函式在設定的事件被觸發滿足該條件時才會被動去執行我們所指定的第二個參數,也就是某個「函式」。
原生JavaScript 觸發事件表
事件 (Event) 的註冊、觸發與傳遞
重新認識 JavaScript: Day 18 Callback Function 與 IIFE
新手上路,如文章有錯誤或需修正之處,懇請大家多多指教!
那麼,我們明天見囉~